package cn.lili.modules.order.order.service;

import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderItem;
import cn.lili.modules.order.order.entity.dos.RefundFlow;
import cn.lili.modules.order.order.entity.dto.OrderFlowQueryDTO;
import cn.lili.modules.store.entity.vos.StoreFlowRefundDownloadVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 售后流水业务层
 *
 * @author Chopper
 * @since 2020/11/17 7:37 下午
 */
public interface RefundFlowService extends IService<RefundFlow> {


    /**
     * 获取结算单的退款流水
     *
     * @param orderFlowQueryDTO 查询条件
     * @return 退款流水
     */
    List<StoreFlowRefundDownloadVO> getStoreFlowRefundDownloadVO(OrderFlowQueryDTO orderFlowQueryDTO);

    /**
     * 订单取消退款
     *
     * @param order 订单信息
     */
    void generatorRefundFlow(Order order);

    /**
     * 生成店铺退款流水
     *
     * @param afterSale 售后单信息
     * @param orderItem 订单项信息
     * @param order     订单信息
     */
    void generatorRefundFlow(AfterSale afterSale, OrderItem orderItem, Order order);

}